import * as React from 'react'; import { RatingProps, TextField, SelectField, Flex, } from '@aws-amplify/ui-react'; export interface RatingPropControlsProps extends RatingProps { setValue: (value: React.SetStateAction) => void; setMaxValue: (value: React.SetStateAction) => void; setSize: (value: React.SetStateAction) => void; setFillColor: (value: React.SetStateAction) => void; setEmptyColor: ( value: React.SetStateAction ) => void; } interface RatingPropControlsInterface { (props: RatingPropControlsProps): JSX.Element; } export const RatingPropControls: RatingPropControlsInterface = ({ value, maxValue, size, fillColor, emptyColor, setValue, setMaxValue, setSize, setFillColor, setEmptyColor, }) => { function handleValueChange(value: string) { if (value === '') { setValue(0); } else if (parseFloat(value)) { setValue(parseFloat(value)); } } function handleMaxValueChange(value: string) { if (value === '') { setMaxValue(0); } else if (parseInt(value)) { setMaxValue(parseInt(value)); } } return ( ) => handleValueChange(event.target.value) } /> ) => handleMaxValueChange(event.target.value) } /> setSize( event.target.value as React.SetStateAction ) } > ) => setFillColor(event.target.value) } /> ) => setEmptyColor(event.target.value) } /> ); };